/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package entidades;

import entidades.divisiones.Secretaria;
import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Felipe
 */
@Entity
@Table (name = "ACTIVIDADES")
@NamedQueries ({
    @NamedQuery (name = "buscarPorNombre", query = "select a from Actividad a where a.nombre like concat ('%', ?1, '%')")
})
public class Actividad implements Serializable
{
	private static final long serialVersionUID = 1L;

	@Id
    @Column (name = "ID_ACTIVIDAD")
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    private long id;
    
    @Column (name = "NOMBRE")
    private String nombre;
    
    @ManyToOne
    @JoinColumn (name = "DEPENDENCIA")
    private Secretaria dependencia;
    
    @Column (name = "COSTO_SOCIOS")
    private int costoSocios;
    
    @Column (name = "COSTO_NO_SOCIOS")
    private int costoNoSocios;
    
    @Column (name = "CUOTAS")
    private int cuotas;
    
    @OneToMany (cascade = {CascadeType.ALL})
    @JoinColumn (name = "PARTICIPACIONES")
    private List<Participacion> participaciones;
    
    public Actividad ()
    {
        
    }

    public Actividad(String nombre, Secretaria dependencia, int cantidadInscriptos, int costoSocios, int costoNoSocios, int cuotas, List<Participacion> participaciones)
    {
        this.nombre = nombre;
        this.dependencia = dependencia;
        this.costoSocios = costoSocios;
        this.costoNoSocios = costoNoSocios;
        this.cuotas = cuotas;
        this.participaciones = participaciones;
    }

    public long getId()
    {
        return id;
    }

    public void setId(long id)
    {
        this.id = id;
    }

    public String getNombre()
    {
        return nombre;
    }

    public void setNombre(String nombre)
    {
        this.nombre = nombre;
    }

    public Secretaria getDependencia()
    {
        return dependencia;
    }

    public void setDependencia(Secretaria dependencia)
    {
        this.dependencia = dependencia;
    }

    public int getCostoSocios()
    {
        return costoSocios;
    }

    public void setCostoSocios (int costoSocios)
    {
        this.costoSocios = costoSocios;
    }

    public int getCostoNoSocios()
    {
        return costoNoSocios;
    }

    public void setCostoNoSocios(int costoNoSocios)
    {
        this.costoNoSocios = costoNoSocios;
    }

    public int getCuotas()
    {
        return cuotas;
    }

    public void setCuotas(int cuotas)
    {
        this.cuotas = cuotas;
    }

    public List<Participacion> getParticipaciones()
    {
        return participaciones;
    }

    public void setParticipaciones(List<Participacion> participaciones)
    {
        this.participaciones = participaciones;
    }
}
